package com.aimaterials.resource.mapper;

import java.util.List;
import com.aimaterials.resource.domain.ResResource;
import org.apache.ibatis.annotations.Param;

/**
 * 资源Mapper接口
 * 
 * @author DaemonSu
 * @date 2020-11-10
 */
public interface ResResourceMapper 
{
    /**
     * 查询资源
     * 
     * @param resourceId 资源ID
     * @return 资源
     */
    public ResResource selectResResourceById(Long resourceId);

    /**
     * 根据二维码查询资源
     *
     * @param qrcode 资源二维码
     * @return 资源
     */
    public ResResource selectResResourceByQRCode(@Param("qrcode") String qrcode,@Param("uuid") String uuid);

    /**
     * 查询资源
     *
     * @param sterId 资源ID
     * @return 资源
     */
    public List<ResResource> selectSterResourceById(Long sterId);

    /**
     * 查询资源列表
     * 
     * @param resResource 资源
     * @return 资源集合
     */
    public List<ResResource> selectResResourceList(ResResource resResource);


    /**
     * 根据教材ID查询资源
     *
     * @param resResource 资源
     * @return 资源集合
     */
    public List<ResResource> selectResResourceListBySter(ResResource resResource);
    /**
     * 新增资源
     * 
     * @param resResource 资源
     * @return 结果
     */
    public int insertResResource(ResResource resResource);

    /**
     * 修改资源
     * 
     * @param resResource 资源
     * @return 结果
     */
    public int updateResResource(ResResource resResource);

    /**
     * 更新视频资源状态
     *
     * @param resResource 资源
     * @return 结果
     */
    public int updateVideo(ResResource resResource);


    /**
     * 视频资源异步转码之后的处理
     *
     * @param resResource 资源
     * @return 结果
     */
    public int updatePreview(ResResource resResource);

    /**
     * 删除资源
     * 
     * @param resourceId 资源ID
     * @return 结果
     */
    public int deleteResResourceById(Long resourceId);

    /**
     * 批量删除资源
     * 
     * @param resourceIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteResResourceByIds(Long[] resourceIds);
    /**
     * 查询未处理的资源
     *
     * @param type 资源后缀名
     * @return 结果
     */
    List<ResResource> selectUNResResourceList(String type);

}
